package com.cargohu.aishouyu.operation.service;

import com.cargohu.aishouyu.framework.page.Paging;
import com.cargohu.aishouyu.framework.service.BaseService;
import com.cargohu.aishouyu.operation.dto.AppVersionAddDTO;
import com.cargohu.aishouyu.operation.dto.AppVersionUpdateDTO;
import com.cargohu.aishouyu.operation.entity.AppVersion;
import com.cargohu.aishouyu.operation.req.AppVersionRequest;
import com.cargohu.aishouyu.operation.resp.AppVersionDetailVo;
import com.cargohu.aishouyu.operation.resp.AppVersionResponse;

/**
 * APP版本信息 服务接口
 *
 * @author yww
 * @since 2023-11-29
 */
public interface AppVersionService extends BaseService<AppVersion> {

    /**
     * 添加APP版本信息
     *
     * @param appVersionAddDTO
     * @return
     * @throws Exception
     */
    boolean addAppVersion(AppVersionAddDTO appVersionAddDTO) throws Exception;

    /**
     * 修改APP版本信息
     *
     * @param appVersionUpdateDTO
     * @return
     * @throws Exception
     */
    boolean updateAppVersion(AppVersionUpdateDTO appVersionUpdateDTO) throws Exception;

    /**
     * 删除APP版本信息
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteAppVersion(Long id) throws Exception;

    /**
     * APP版本信息详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppVersionDetailVo getAppVersionById(Long id) throws Exception;

    /**
     * APP最新版本信息详情
     *
     * @return
     * @throws Exception
     */
    AppVersionDetailVo getLatestAppVersion(String platform) throws Exception;

    /**
     * APP版本信息分页列表
     *
     * @param appVersionRequest
     * @return
     * @throws Exception
     */
    Paging<AppVersionResponse> getAppVersionList(AppVersionRequest appVersionRequest) throws Exception;

}
